﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HAUtil;
using HA.ModFlow.Domain.DomainLayer;

namespace HA.Data
{


    /// <summary>
    /// 用于表示一个单元实例
    /// </summary>
    [Serializable]
    public class WaterCell:ICloneable
    {

        public WaterCell(int i,int j,int k,int index)
        {
            this._cellIndex = index;
 
        }

        public WaterCell(int cellIndex)
        {
            this._cellIndex = cellIndex;
        }

        #region 事件部分


        //[field: NonSerialized]
        //public event EventHandler<WaterGridModifiedEventArgs> BoundChanged;

        #endregion

        int _cellIndex;

        public int CellIndex
        {
            get { return _cellIndex; }
            
        }


        double _topElevation;

        public double TopElevation
        {
            get { return _topElevation; }
            set { _topElevation = value; }
        }

        double _bottomElevation;

        public double BottomElevation
        {
            get { return _bottomElevation; }
            set { _bottomElevation = value; }
        }


        //Lpf包属性
        double _hk;

        public double Hk
        {
            get { return _hk; }
            set { _hk = value; }
        }

        double _hani;

        public double Hani
        {
            get { return _hani; }
            set { _hani = value; }
        }

        double _vani;

        public double Vani
        {
            get { return _vani; }
            set { _vani = value; }
        }

        double _ss;

        public double Ss
        {
            get { return _ss; }
            set { _ss = value; }
        }
        double _sy;

        public double Sy
        {
            get { return _sy; }
            set { _sy = value; }
        }

        //bcf属性
        double _sf1;

        public double Sf1
        {
            get { return _sf1; }
            set { _sf1 = value; }
        }

        double _transmissivity;

        public double Transmissivity
        {
            get { return _transmissivity; }
            set { _transmissivity = value; }
        }

        //公共属性
        int _ibound;

        public int Ibound
        {
            get { return _ibound; }
            set 
            {
                if (_ibound != value)
                {
                    _ibound = value;

                    //if (BoundChanged != null)
                    //{
                    //    BoundChanged(this,new WaterGridModifiedEventArgs (value,WaterGridModifiedType.IBOUND));

                    //}
                  
                }
            }
        }

        double _startingHead;

        public double StartingHead
        {
            get { return _startingHead; }
            set { _startingHead = value; }
        }

        double _porosity;

        public double Porosity
        {
            get { return _porosity; }
            set { _porosity = value; }
        }

        int _zoneCode;

        public int ZoneCode
        {
            get { return _zoneCode; }
            set { _zoneCode = value; }
        }

        int _zoneBudgtId;

        public int ZoneBudgtId
        {
            get { return _zoneBudgtId; }
            set { _zoneBudgtId = value; }
        }

        public object Clone()
        {
            return this.MemberwiseClone();
        }
    }

}
